<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title></title>
</head>
<body>

<script type="text/javascript">
	/*
		运算符：
			  1.比较运算符
			  2.算术运算符
			  3.逻辑运算符
			  4.赋值运算符

	*/
	/*
			1.比较运算符：比较两个值的大小，返回一个Boolean值，true/false
			>
			<
			>=
			<=
			== 值是否相等 不含类型
			=== 值＋类型
			!= 不等于 判断值不相等
			!==不全等与 值和类型

	*/
	console.log('2' == 2)//true
	console.log('2' === 2)//false
	console.log('2' != 2)//false
	console.log('2' !== 2)//true

	/*
		2.逻辑运算符：用于测量变量或者值之间的逻辑关系，返回Boolean类型的值
		&&  逻辑与 '且'都真才真，有假就假
		||  伙计或 '或'都假才假，有真就真
		！  逻辑非  取反		

	*/
	let a = 4
	let b = 6
	let c = 10
	console.log(a < b && b < c) //true
	console.log(a > b && b < c) //false

	let d = 1
	let e = 2
	console.log("现打印：",d < 3 && e < 3)
	console.log(d > 3 || e < 3)

	let f = d > e
	console.log(!f)
	console.log(!0) //true
	console.log(!1)
	console.log(!'')//true
	console.log(!null)//true
	console.log(!undefined)//true
	console.log(!NaN)//true

     /*
		3.算术运算符

			+
			-
			*
			/
			%取余
			++
			--
     */

	let num1 = 5
	let num2 = 3
	console.log(num1 % num2) //2
	console.log(num1 / num2) //1.666666666667

	let num3 = true //1
	let num4 = false //0
	let num5 = '2'
	let num6 = null
	let num7 = undefined

	console.log(num1 + num3) //6
	console.log(num3 + num4) //1
	console.log(num1 + num5) //'52'
	console.log(num5 - num2) // -1
	console.log(num2 + num6) //3 null:0
	console.log(num5 + num3) //'2true'
	console.log(num3 + num7) //NaN

	/*
		隐式转换：在js的运算中，如果两边数据类型不一样，这时候编译器会自动将两边数据进行数据类型转换，转成统一的数据类型再计算，不需要手动转换
		
		1.运算中 null 布尔值 纯数字字符串 都能进行隐式转换，但是如果不是纯数字 或者 undefined 都会返回NaN
		2.隐式转换 "+"遇到字符串自动拼接
		3.隐式转换的规律
			对象 --->字符串 --->数字<---布尔值
		4.利用隐式转换快速进行数据类型转换
			转字符串：+ // + ''
			转数字： - * / %
			转布尔： !! !
	*/ 

	console.log([1,2,3] == "1,2,3")//[]转换为"" "1,2,3"=="1,2,3"
	console.log([] == 0) //true []转化为"" ""转换为0
	console.log(true == '1') //true
	console.log("streu" - 1) //NaN
	console.log(1 - undefined) //NaN
	console.log(100+'')//快速转字符串
	console.log("100" - '')//快速转字符串

	// a++ 先用后加  ++a 先加后用
	let n1 = 0
	let n2 = 1

	n1 = n2++ + ++n2 //1+3
	console.log(n1)
	let n3 = 4
	let n4 = 6
	let n5 = n3++ + ++n4 - n3-- + --n3
	//       4 5  + 7 7  -  5 4     3
	console.log(n5)
	console.log(n3)
 
     /*
		4.赋值运算符：
			=
			+=
			-=
			*=
			/=
			%=
	
     */

	let x = 1
	let y = 2
	y += x;
	y -= x
	y *= x
	y /= x
	y %= x

	

</script>
</body>
</html>